﻿/*
给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
 示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231,  231 − 1]。
请根据这个假设，如果反转后整数溢出那么就返回 0。
*/

#include "AllInc.h"

class Solution {
public:
	int reverse(int x) {
		int result = 0;

		while (x)
		{
			long long tmp = (long long)result * 10 + x % 10;
			if (tmp > INT_MAX || tmp < INT_MIN)
			{
				return 0;
			}
			result = tmp;
			x /= 10;
		}

		return result;
	}
};

//int main()
//{
//	Solution s;
//	int result = s.reverse(INT_MIN);
//
//	return 0;
//}